As networks grow larger with an ever-expanding cluster of peripherals, associated software, and network connections, they must all be managed efficiently in order to ensure a well-organized system. Because the role of a system administrator has become increasingly complex, the industry has responded with Web Based Enterprises Management (WBEM), a solution including standards for management applications, which allow exchange of management data irrespective of the underlying protocol, operating system, management standard, or associated vendor. A prevalent standard of implementation of WBEM is the Common Information Model (CIM), used for systems management in a client server environment.
CIM is a distributed, hierarchical, object-oriented system management model representing different aspects of a managed entity in separate but related objects. Because this is a distributed object-oriented model, in order to represent a single entity in a server or storage, the client needs to retrieve and assemble all the required data. The client makes numerous requests to the server, and due to the much dispersed nature of the object model, the result is a performance penalty that affects the response time of the management applications. One way to alleviate the performance degradation of management client responses is to implement caching at the CIM client layer.
As with any cache, the CIM client cache needs to be kept consistent with the server state. Two general approaches have been proposed to accomplish that result—a continuous polling mechanism to synchronize the client and server state, or receiving asynchronous notifications that can be employed to update the client state. Both methods, however, have inherent disadvantages. On one hand, a dispersed object model requires frequent polling, which can lead to increased expense as well as overutilization of system and network resources. On the other hand, asynchronous notifications are an unreliable tool to maintain cache coherency because they offer no guarantee of delivery, or correct order of delivery. Those issues create potential risks, as the loss of critical asynchronous notifications or their out-of-order delivery would lead to an invalid cache.
Currently known solutions poll periodically for all data stored in the cache in order to keep any client side cache consistent. As a result, an excessive number of periodic requests are made to the server because of the much distributed nature of the object data. These attempted solutions place excessive demands on network bandwidth, computational power, memory, and latency.